Problem s ORDER BY u Firebird
Otázka od: Radim Hradecky
23. 9. 2004 21:23
Dobry den,
Provadim konverzi programu z MySQL na Firebird v Delphi a
narazil sem na problem s ORDER BY. Pouzivam Firebird 1.5 Dialect 3. Puvodni
dotaz vypada zhruba takto (podstatne je tucne):
SELECT "User_ID",SUM("DelkaPobytu") AS sum_time
FROM "trzba"
WHERE ("Datum">='2004-09-01' AND "Datum"<'2004-10-01' AND "Cena">0 AND
("Tarif"='Gamestar' OR "Tarif"='Registrovan') AND "User_ID">-1) GROUP BY
"User_ID" ORDER BY sum_time DESC
FB hlasi ze sum_time neni nazev sloupce, coz je Pravda, ale nevim jak mu dat
najevo ze nejde o sloupec ale soucast toho AS. Zkousel sem lecos, v historii
sem nic nenasel.
Dekuji za pomoc
S pozdravem Radim Hradecky
Odpovedá: Jiri Cincura
23. 9. 2004 21:33
Radim Hradecky wrote:
> FB hlasi ze sum_time neni nazev sloupce, coz je Pravda, ale nevim jak mu
> dat najevo ze nejde o sloupec ale soucast toho AS. Zkousel sem lecos, v
> historii sem nic nenasel.
Zkus to dat do uvozovek/apostrofu.
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Odpovedá: Radim Hradecky
23. 9. 2004 21:37
To sem prave myslel tim ze sem zkousel lecos, kdyz dam uvozovky bere to take
jako sloupec a kdyz apostrof tak jako retezec
-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz] On
Behalf Of Jiri Cincura
Sent: Thursday, September 23, 2004 10:33 PM
To: delphi-l@clexpert.cz
Subject: Re: Problem s ORDER BY u Firebird
Radim Hradecky wrote:
> FB hlasi ze sum_time neni nazev sloupce, coz je Pravda, ale nevim jak mu
> dat najevo ze nejde o sloupec ale soucast toho AS. Zkousel sem lecos, v
> historii sem nic nenasel.
Zkus to dat do uvozovek/apostrofu.
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Odpovedá: Jiri Semler
23. 9. 2004 21:47
>SELECT "User_ID",SUM("DelkaPobytu") AS sum_time
>
> FROM "trzba"
>
>WHERE ("Datum">='2004-09-01' AND "Datum"<'2004-10-01' AND "Cena">0 AND
>("Tarif"='Gamestar' OR "Tarif"='Registrovan') AND "User_ID">-1) GROUP BY
>"User_ID" ORDER BY sum_time DESC
>
>
>FB hlasi ze sum_time neni nazev sloupce,
>
Staci upravit : ORDER BY SUM("DelkaPobytu")
Jiri Semler
Odpovedá: Tomas Bradle
23. 9. 2004 21:59
Dej tam: ORDER BY 2
Tomas Bradle
t.bradle@worldonline.cz
----- Original Message -----
From: "Radim Hradecky" <radim.hradecky@seznam.cz>
To: <delphi-l@clexpert.cz>
Sent: Thursday, September 23, 2004 10:12 PM
Subject: Problem s ORDER BY u Firebird
> Dobry den,
>
> Provadim konverzi programu z MySQL na Firebird v Delphi a
> narazil sem na problem s ORDER BY. Pouzivam Firebird 1.5 Dialect 3.
Puvodni
> dotaz vypada zhruba takto (podstatne je tucne):
>
>
>
> SELECT "User_ID",SUM("DelkaPobytu") AS sum_time
>
> FROM "trzba"
>
> WHERE ("Datum">='2004-09-01' AND "Datum"<'2004-10-01' AND "Cena">0 AND
> ("Tarif"='Gamestar' OR "Tarif"='Registrovan') AND "User_ID">-1) GROUP BY
> "User_ID" ORDER BY sum_time DESC
>
>
>
> FB hlasi ze sum_time neni nazev sloupce, coz je Pravda, ale nevim jak mu
dat
> najevo ze nejde o sloupec ale soucast toho AS. Zkousel sem lecos, v
historii
> sem nic nenasel.
>
Odpovedá: Radim Hradecky
23. 9. 2004 22:23
>Dej tam: ORDER BY 2
>
>Tomas Bradle
>t.bradle@worldonline.cz
Skvele, diky, to zabralo. Jen pro uplnost, dat tam misto toho
SUM("DelkaPobytu") take neslo.
S pozdravem Radim Hradecky
Odpovedá: Martin Pisarik
24. 9. 2004 8:56
FireBird neumi aliasy sloupcu v klauzuli ORDER BY. Mimochodem to je taky
hlavni duvod proc jsem musel zustat u MySQL. Podoporovany jsou vsak cisla
sloupcu, traba ORDER BY 2 atd. coz se muze hodit.
Dalsi vec, na kterou si dej pri prechodu MySQL->FB pozor je JOIN. V jednom
dotazu musis bud vsechny tabulky spojit JOINy a nebo ve WHERE, ale nesmis to
kombinovat. Pak to VUBEC nefunguje a bude to vracet nesmysly! Ja v jednom
svem projektu generuju dotazy programove a pouzivam vyse uvedenou kombinaci
JOIN a WHERE a proto jsem zjsitil, ze migrace MySQL to FB u hotoveho
projektu by byla narocnejsi, tak jsem od toho prozatim upustil...